﻿namespace Hanoi
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //接受用户输入
            Console.WriteLine("请输入圆盘个数");
            int n = Convert.ToInt32(Console.ReadLine());
            Hanoi(n, 'A', 'B', 'C');
        }
        //汉诺塔移动执行
        public static void Hanoi(int n, char A, char B, char C)
        {
            //确保n为正整数
            if (n<=0) Console.WriteLine("WRONG");
            //n为1直接移动，n>1利用函数递归实现
            if(n==1)step(A, C);
            else
            {
                Hanoi(n-1, A, C, B);
                step(A, C);
                Hanoi(n-1, B, A, C);
            }
        }
        //输出每一步移动方向的函数
        public static void step(char A, char B)
        {
            Console.WriteLine($"From{A}to{B}");
        }
    }
}